1. Technical Field of Non-Limiting Exemplary Embodiments.
The present invention relates to knowledge representation and management and has particular but not exclusive application in knowledge recovery techniques.
2. Description of Related Art.
After decades of software development, the software industry has arrived at a point where a significant amount of software engineering effort is being spent on maintaining existing systems. Software maintainers spend a large proportion of their time developing an understanding of the software being maintained. One reason for this is that software documentation is often inadequate or unreliable. As a result, source code itself is often the only reliable source for developing understanding of the software. The knowledge of functions and performance of the software is referred to as domain knowledge.
To help with program understanding, software maintainers use computer aided reverse engineering (CARE) tools which utilise techniques such as syntax analysis, structural analysis, and domain knowledge base analysis (DKBA). Known DKBA methods are complex since the domain knowledge recovery relies on the use of knowledge at different layers while some elements of the knowledge at domain level is not used at all. This makes these methods inefficient. Furthermore, the current techniques and systems do not address issues such as knowledge representation, uncertainty reasoning and program space management in the context of domain knowledge recovery from source code or other structured data.